8
תגובות
$bla = json_decode('{}');
$bla->bla = json_decode('()');
$bla->bla->bla = "bla";
echo $bla->bla->bla;


הקוד הזה מחזיר לי:
( ! ) SCREAM: Error suppression ignored for
( ! ) Warning: Creating default object from empty value in ... on line 3
bla

מה לא עשיתי נכון?
(ניסיתי לעבוד עם JSON במקום מערך רגיל כי זה נוח יותר.)

8 תשובות

avatar ענה raslin ב 15 לאוגוסט 2012 #

אובייקט ג'ייסון נוצר ממערך/אובייקט,
לך יש סתם string

avatar ענה OrelBeY ב 15 לאוגוסט 2012 #

שמכיל {}, שזה אובייקט, לא?

ניסיתי גם את זה, אבל זה לא עובד:

$j = array();
$bla = json_decode(json_encode($j));
$bla->bla = json_decode(json_encode($j));
$bla->bla->bla = "bla";
echo $bla->bla->bla;

avatar ענה raslin ב 15 לאוגוסט 2012 #

בשורה השלישית איך אתה עושה bla->bla כשזה לא קיים בכלל?
אולי תסביר מה אתה מנסה לעשות?

avatar ענה OrelBeY ב 15 לאוגוסט 2012 #

מה זאת אומרת לא קיים? אני מגדיר אותו שם.
אני סה"כ מנסה ליצור אובייקט JSON באמצעות PHP ולשנות אותו, להוסיף לו.

avatar ענה raslin ב 15 לאוגוסט 2012 #

אתה לא יכול להגדיר אותו כי הוא לא אובייקט עדיין....
בכלל כל מה שעשית שם זה חתיכת באלגן לא יודע מאיפה הבאת את זה..

זה אמור לעבוד ככה:

$array = array('name'=>'roman');

$json = json_encode($array);

$object = json_decode($json);
echo $object->name;

avatar ענה OrelBeY ב 15 לאוגוסט 2012 #

זה שונה ממה שעשיתי רק בכך שבמערך שיצרת הגדרת אלמנטי מערך, אבל אני רוצה ליצור אותם ולהגדיר אותם אחרי שיש לי אובייקט JSON. איך לעשות את זה?

avatar ענה raslin ב 15 לאוגוסט 2012 #

אולי StdClass זה מה שאתה מחפש...
מעבר לזה אני לא מבין אותך

avatar ענה OrelBeY ב 15 לאוגוסט 2012 #

בדיוק. :)
תודה רבה. :)

$bla = new stdClass();
$bla->bla = new stdClass();
$bla->bla->bla = "bla";
echo $bla->bla->bla;